home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO076.dsk / SHOW.PIC.bas < prev    next >
BASIC Source File  |  2012-02-16  |  7KB  |  178 lines

  1. 1  REM <CTRL-M><CTRL-M><CTRL-[><CTRL-O>[[[[[[[[[[[[[[[[[[[[[[[<CTRL-N><CTRL-X><CTRL-M> Picture Displayer <CTRL-M>by Paul Lieberman<CTRL-M><CTRL-[><CTRL-O>[[[[[[[[[[[[[[[[[[[[[[[[[<CTRL-N><CTRL-X><CTRL-M><CTRL-M>
  2. 10  GOTO 21: REM  <CTRL-O> Delete this line to make this a stand alone program <CTRL-N><CTRL-M>
  3. 11  HOME :D$ =  CHR$(4)
  4. 12  PRINT D$"PR#3": PRINT 
  5. 13  GOSUB 2300
  6. 21  POKE 32,6: POKE 33,70
  7. 22  POKE 34,3: POKE 35,21
  8. 23  HOME :D$ =  CHR$(4)
  9. 40  PRINT D$"-MOUSE"
  10. 90  DIM FI$(20),A$(20),B(20)
  11. 100 S$ = "<CTRL-O> <CTRL-N>"
  12. 110 U$ = "<CTRL-[><CTRL-O>U<CTRL-N><CTRL-X>"
  13. 120 BS$ =  CHR$(8)
  14. 130 CR$ = "_"
  15. 140 SS$ = "<CTRL-[><CTRL-O>S<CTRL-N><CTRL-X>"
  16. 145 C$ = "<CTRL-[><CTRL-O>C<CTRL-N><CTRL-X>"
  17. 150  VTAB 1: HTAB 20: PRINT "<CTRL-O>      Display Picture    <CTRL-N>";: VTAB 6: PRINT : HOME 
  18. 160  TEXT 
  19. 190  GOSUB 2300
  20. 200  ONERR  GOTO 3000
  21. 220  VTAB 6: PRINT "<CTRL-O>     Select Source Directory<CTRL-N>"
  22. 225  VTAB 18: PRINT "<CTRL-O> Arrows Select   <RETURN> Accepts<CTRL-N>"
  23. 230 A$(1) = "Slot and Drive"
  24. 240 A$(2) = "ProDOS Pathname"
  25. 250 UM = 10:F = 2
  26. 260  GOSUB 1500
  27. 265  HOME 
  28. 266  IF   NOT V  THEN  TEXT : PRINT D$"-STARTUP"
  29. 270  IF V >1  THEN 490
  30. 380  VTAB 10: PRINT "Slot "U$" ";
  31. 390  GET A$:A =  VAL(A$): IF A <1  OR A >7  THEN 390
  32. 400  PRINT A:S = A
  33. 410  VTAB 12: PRINT "Drive "U$" ";
  34. 420  GET A$:A =  VAL(A$): IF A <1  OR A >2  THEN 420
  35. 430  PRINT A$:D = A
  36. 440  PRINT D$"PREFIX,S"S",D"D
  37. 450  PRINT D$"PREFIX"
  38. 460  INPUT PF$:PF$ =  LEFT$(PF$, LEN(PF$) -1)
  39. 470  PRINT D$"PREFIX/RAM"
  40. 480  GOTO 800
  41. 490  VTAB 8: PRINT "Source Directory "U$" /";:
  42. 500  GOSUB 2000
  43. 510 PF$ = "/" +L$
  44. 530  PRINT D$"VERIFY"PF$
  45. 800  POKE 32,6: POKE 33,70
  46. 810  POKE 34,3: POKE 35,21
  47. 820  HOME : PRINT 
  48. 880  PRINT D$"OPEN"PF$",TDIR"
  49. 890  PRINT D$"READ"PF$
  50. 900  PRINT "Reading Directory "PF$"....."
  51. 905 FI$(1) = ""
  52. 910  INPUT F$: INPUT F$: INPUT F$
  53. 920 J = 1
  54. 930  INPUT F$
  55. 940  IF F$ = ""  THEN 990
  56. 950  IF  MID$ (F$,18,3) < >"BIN"  THEN 930
  57. 960 FI$(J) =  MID$ (F$,2,15):B(J) =  VAL( MID$ (F$,23,6))
  58. 965  IF B(J) < >17  AND B(J) < >33  THEN 930
  59. 970 J = J +1: GOTO 930
  60. 990  PRINT D$"CLOSE"
  61. 1000  IF FI$(1) = ""  THEN  PRINT "There are no hi-res or double hi-res pictures in this directory": FOR D = 1 TO 1000: NEXT : HOME : GOTO 160
  62. 1020 J = J -1: FOR Z = 1 TO J
  63. 1030  IF  RIGHT$(FI$(Z),1) = " "  THEN FI$(Z) =  LEFT$(FI$(Z), LEN(FI$(Z)) -1): GOTO 1030
  64. 1040  NEXT 
  65. 1200  HOME 
  66. 1210  PRINT "<CTRL-O>     Select picture to display        <CTRL-N>"
  67. 1220  PRINT : PRINT "Directory: "PF$
  68. 1230  FOR Z = 1 TO J
  69. 1240 A$(Z) = FI$(Z)
  70. 1250  NEXT 
  71. 1260 F = J:LM = 4:UM = 6
  72. 1270  GOSUB 1500
  73. 1275  IF   NOT V  THEN  HOME : GOTO 160
  74. 1280 FI$ = PF$ +"/" +FI$(V)
  75. 1285  TEXT : HOME 
  76. 1290  IF B(V) = 33  THEN 1340
  77. 1300  HGR : POKE 49234,0
  78. 1310  PRINT D$"BLOAD"FI$",A$2000"
  79. 1320  GOTO 1395
  80. 1340  PRINT D$"BLOAD"FI$",A$2000"
  81. 1350  PRINT D$"-DHR"
  82. 1360  CALL 24676
  83. 1370 S =  PEEK(24770)
  84. 1380  IF S >100  THEN 1400
  85. 1390 K =  PEEK(49152): IF K <128  THEN 1360
  86. 1400  POKE 49168,0: POKE 49235,0
  87. 1410  VTAB 22: INVERSE : PRINT "Press V for this picture   S for same directory  M for the menu  or Q to quit ": NORMAL 
  88. 1415  CALL 24676:S =  PEEK(24770)
  89. 1416  IF S >100  THEN  TEXT : GOTO 1200
  90. 1420 K =  PEEK(49152): IF K <128  THEN 1415
  91. 1430  POKE 49168,0:K = K -128:K$ =  CHR$(K)
  92. 1435  IF K$ = "V"  OR K$ = "v"  THEN  POKE 49234,0: GOTO 1360
  93. 1440  IF K$ = "M"  OR K$ = "m"  THEN  TEXT : HOME : GOSUB 2200: GOTO 160
  94. 1445  IF K$ = "Q"  OR K$ = "q"  THEN  TEXT : PRINT D$"-STARTUP"
  95. 1450  IF K$ = "S"  OR K$ = "s"  THEN  TEXT : GOTO 1200
  96. 1460  GOTO 1420
  97. 1500  REM  MENU SUB
  98. 1530 V = 1:
  99. 1535  CALL 24676
  100. 1536 X1 =  PEEK(24766) +256 * PEEK(24767)
  101. 1537 Y1 =  PEEK(24768) +256 * PEEK(24769)
  102. 1540  FOR N = 1 TO F
  103. 1541  IF N <15  THEN  VTAB UM +N: HTAB LM +6
  104. 1542  IF N >14  THEN  VTAB UM +N -14: HTAB LM +36
  105. 1543  PRINT N" "A$(N)
  106. 1544  NEXT 
  107. 1550  INVERSE 
  108. 1551  IF V <15  THEN  VTAB UM +V: HTAB LM +6
  109. 1552  IF V >14  THEN  VTAB UM +V -14: HTAB LM +36
  110. 1553  PRINT V" "A$(V)
  111. 1554  NORMAL 
  112. 1560  CALL 24676
  113. 1561 X =  PEEK(24766) +256 * PEEK(24767)
  114. 1562 Y =  PEEK(24768) +256 * PEEK(24769)
  115. 1563 S =  PEEK(24770): IF S >100  THEN K = 141: GOTO 1580
  116. 1564  IF Y >Y1 +4  THEN K = 138:Y1 = Y: GOTO 1580
  117. 1565  IF Y <Y1 -4  THEN K = 139:Y1 = Y: GOTO 1580
  118. 1566  IF X >X1 +4  THEN K = 149:X1 = X: GOTO 1580
  119. 1567  IF X <X1 -4  THEN K = 136:X1 = X: GOTO 1580
  120. 1570 K =  PEEK( -16384): IF K <128  THEN 1560
  121. 1580  POKE  -16368,0
  122. 1581  IF V <15  THEN  VTAB UM +V: HTAB LM +6
  123. 1582  IF V >14  THEN  VTAB UM +V -14: HTAB LM +36
  124. 1583  PRINT V" "A$(V)
  125. 1584  IF K = 141  THEN 1630
  126. 1585  IF K = 155  THEN V = 0: GOTO 1630
  127. 1590  IF K >176  AND K <177 +F  THEN V = K -176: GOTO 1630
  128. 1600  IF K = 136  OR K = 139  THEN V = V -1: IF V = 0  THEN V = F
  129. 1610  IF K = 149  OR K = 138  THEN V = V +1: IF V = F +1  THEN V = 1
  130. 1620  GOTO 1550
  131. 1630  RETURN 
  132. 2000 L$ = ""
  133. 2010  PRINT CR$BS$;
  134. 2020 K =  PEEK(49152): IF K <128  THEN 2020
  135. 2030  POKE 49168,0
  136. 2040 K = K -128
  137. 2050  IF K = 8  OR K = 127  THEN 2150
  138. 2060  IF K = 13  THEN  PRINT " ": RETURN 
  139. 2070  IF K = 27  THEN  POP : GOTO 2140
  140. 2080  IF K <65  AND  LEN(L$) = 0  THEN 2020
  141. 2090  IF K <46  OR (K >57  AND K <65)  OR (K >90  AND K <97)  OR K >122  THEN 2020
  142. 2100  IF K >96  THEN K = K -32
  143. 2110 K$ =  CHR$(K): PRINT K$;
  144. 2120 L$ = L$ +K$
  145. 2130  GOTO 2010
  146. 2140  HOME : GOTO 160
  147. 2150  IF  LEN(L$) >0  THEN  PRINT " "BS$BS$;
  148. 2160  IF  LEN(L$) >1  THEN L$ =  LEFT$(L$, LEN(L$) -1): GOTO 2010
  149. 2170 L$ = "": GOTO 2010
  150. 2200  TEXT : HOME : PRINT 
  151. 2210  FOR H = 2 TO 78: HTAB H: PRINT C$;: NEXT 
  152. 2220  FOR V = 3 TO 22: VTAB V: HTAB 2: PRINT C$;C$;: HTAB 77: PRINT C$;C$;: NEXT 
  153. 2230  VTAB 23: FOR H = 2 TO 78: HTAB H: PRINT C$;: NEXT 
  154. 2235  VTAB 2: HTAB 26: PRINT "<CTRL-O>     Display Picture    <CTRL-N>"
  155. 2240  RETURN 
  156. 2300  VTAB 6: FOR H = 20 TO 60: HTAB H: PRINT S$;: NEXT 
  157. 2310  VTAB 18: FOR H = 20 TO 60: HTAB H: PRINT S$;: NEXT 
  158. 2320  FOR V = 6 TO 18: VTAB V: HTAB 18: PRINT S$;S$;: HTAB 61: PRINT S$;S$;: NEXT 
  159. 2330  POKE 32,22: POKE 33,37
  160. 2340  POKE 34,6: POKE 35,17
  161. 2350  HOME 
  162. 2360  RETURN 
  163. 3000  POKE 216,0
  164. 3010 E =  PEEK(222)
  165. 3020  IF E = 255  THEN  TEXT : PRINT : PRINT "<CTRL-G>Control-C Break": END 
  166. 3030  IF E = 6  THEN E$ = "Path not found": GOTO 3060
  167. 3040  IF E = 3  THEN E$ = "No device connected": GOTO 3060
  168. 3050  GOTO 3100
  169. 3060  PRINT : PRINT "<CTRL-G>Error ====> "E$
  170. 3070  PRINT : PRINT "Press any Key to continue."
  171. 3080  WAIT  -16384,128: POKE  -16368,0
  172. 3090  HOME : GOTO 200
  173. 3100  PRINT "<CTRL-G>Uh-Oh we got error number "E
  174. 3110  PRINT "Please report this to the author."
  175. 3120  PRINT "Sorry....."
  176. 3130  PRINT : PRINT "Press any Key"
  177. 3140  WAIT  -16384,128: POKE  -16368,0
  178. 3150  PRINT D$"-STARTUP"